/**
*	OMaster - Cheating Tool OGame
Door: Peter Evers
Datum: 22 November 2007

  Bestand: parser.h
  Beschrijving:
  Dit bestand zorgt voor het parsen van de bestanden.	
**/

#ifndef PARSER_H__
#define PARSER_H__

#ifndef _DEBUG
#define _DEBUG
#endif

#include "ConfigFile.h"
#include <string>
#include <sstream>
#include <iostream>
#include <vector>
#include <cstdio>
using std::string;
using std::vector;

// Haalt decimale punt weg, geeft pointer terug (let op! ook weer vrijgeven)
char *RemoveDecimal(char *text);

// structure voor grondstoffen
struct SResources
{
    double dMetaal, dKristal, dDeut;
};

/**
* Basic planeet info.
*/
struct SPlanet
{
	string id;
	string name;
};

// enum voor alle gebouwen
enum EBuildings
{
    METAAL_MIJN = 0, KRISTAL_MIJN, DEUT_MIJN, ZONNE_ENERGIE, ROBOT_FABRIEK, METAAL_OPSLAG,
		KRISTAL_OPSLAG, DEUT_TANK, ONDERZOEKS_LAB, ALLIANTIE_HANGAR, RAKETSILO, NUMBER_OF_BUILDINGS
};

// klasse die pagina verwerkt
class CParser
{
public:
	CParser();
	~CParser();
	
	char *GetSession(char *page);
	bool GetResources(char *page, SResources &resources);
	int GetBuildingLevel(char *page, int building, ConfigFile *language, char *szLanguage);
				
	int GetPlanets(char *page, vector<SPlanet> &planets);
private:
	void SkipCells(char*& pSource, int tr, int td);    
	int ReadNextTD(char *source, char *&save) ; 
};

#endif
